dxp-ux
[POST] create product (TMF 637)
This operation allows to resend activation link in cases when the URL has expired, or the customer has not received it.
URL
https://[localhost]:[port]/dxp-ux/v1/{businessId}/productURL PARAMS
| name | type | description | required |
|---|---|---|---|
| businessId | string | 2 letter ISO 3166 country code (TT, BB, JM, PA, PR etc.) identifying the business unit. | Y(PA) |
Headers
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
|---|---|---|---|
| client_id | string | The client_id identifying the channel. Minimum characters: 5 | Y(PA) |
| client_secret | string | Password associated with the client_id. Minimum characters: 5 | Y(PA) |
| X-Correlation-ID | string | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. | Y(PA) |
Data Model - Request
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
|---|---|---|---|
| productSpecification | object | A ProductSpecification is a detailed description of object made available externally in the form of a ProductOffering to customers. | Y(PA) |
| productSpecification.id | string | Unique identifier of the product | Y(PA) |
| @baseType | string | When sub-classing, this defines the super-class Note for PA Bango usecase: This value is "product" | Y(PA) |
| @type | string | When sub-classing, this defines the sub-class entity name Note for PA Bango usecase: This value is "OTT" | Y(PA) |
| @referredType | string | target OTT or streaming Note for PA Bango usecase (for DISNEY OTT): This value is "DISNEY" | Y(PA) |
| billingAccount | object | BillingAccount reference. A BillingAccount is a detailed description of a bill structure. | Y(PA) |
| billingAccount.id | string | Unique identifier of the billing account | Y(PA) |
| billingAccount.contact[] | array | Contact details of the billingAccount | Y(PA) |
| billingAccount.contact[].contactType | string | contactType of billingAccount | N(PA) |
| billingAccount.contact[].contactMedium[] | array | Medium of contact for billingAccount | Y(PA) |
| billingAccount.contact[].contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) |
| billingAccount.contact[].contactMedium[].characteristic.emailAddress | string | email Address to resend the activation link | Y(PA) |
| billingAccount.'@baseType' | string | When sub-classing, this defines the super-class | N(PA) |
| billingAccount.'@type' | string | When sub-classing, this defines the sub-class entity name for billingAccount | N(PA) |
billingAccount.contact[] subResource request and response -Data Model
| field | value | description | required (mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| contactType | string | contactType of billingAccount | N(PA) | PA: "contactType": "primary" |
| contactMedium[] | array | Medium of contact for billingAccount | Y(PA) | PA: "contactMedium": [ { "characteristic": { "emailAddress": "abc@gmail.com" } } ] |
| contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) | PA:"characteristic": { "emailAddress": "donipudi-sai.vaishnavi@capgemini.com" } |
| contactMedium[].characteristic.emailAddress | string | email Address of the billingAccount | Y(PA) | PA: "emailAddress": "abc@gmail.com" |
Data Model Response
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
|---|---|---|---|
| id | string | id of the entitlement/product | Y(PA) |
| status | string | status of the product Note for PA Bango usecase: This value "created" | Y(PA) |
| productSpecification | object | A ProductSpecification is a detailed description of object made available externally in the form of a ProductOffering to customers. | Y(PA) |
| productSpecification.id | string | Unique identifier of the product | Y(PA) |
| @baseType | string | When sub-classing, this defines the super-class Note for PA Bango usecase: This value is "product" | Y(PA) |
| @type | string | When sub-classing, this defines the sub-class entity name Note for PA Bango usecase: This value is "OTT" | Y(PA) |
| @referredType | string | target OTT or streaming Note for PA Bango usecase (for DISNEY OTT): This value is "DISNEY" | Y(PA) |
| billingAccount | object | BillingAccount reference. A BillingAccount is a detailed description of a bill structure. | Y(PA) |
| billingAccount.id | string | Unique identifier of the billing account | Y(PA) |
| billingAccount.contact[] | array | Contact details of the billingAccount | Y(PA) |
| billingAccount.contact[].contactType | string | contactType of billingAccount | N(PA) |
| billingAccount.contact[].contactMedium[] | array | Medium of contact for billingAccount | Y(PA) |
| billingAccount.contact[].contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) |
| billingAccount.contact[].contactMedium[].characteristic.emailAddress | string | email Address to resend the activation link | Y(PA) |
| billingAccount.'@baseType' | string | When sub-classing, this defines the super-class | N(PA) |
| billingAccount.'@type' | string | When sub-classing, this defines the sub-class entity name for billingAccount | N(PA) |
Key considerations
- Please refer the examples from the following URL - DXP UX - POST Product
PA Implementation (Bango usecase)
1.. Following are the mandatory fields in the request:
- productspecification.id (refers to product id)
- "@type" should always be "OTT"
- "@baseType" should always be"product"
- "@referredType" varies based on streaming. For DISNEY streaming value is "DISNEY".
- billingAccount.contact[].contactMedium[].characteristic.emailAddress (email Address to resend the activation link)
- billingAccount.id (refers to the billingAccount number)
2. Once entitlement is available in Bango system user will receive Activation URL to the mentioned emailAddress in the request.Possible Error Scenarios for PA :
IF WE ARE PASSING INVALID '@type' IN REQUEST BODY
{
"errors": [
{
"code": 400,
"message": "VALIDATION:INVALID_BOOLEAN",
"description": "Mandatory field @type is not specified or Incorrect value is received. The expected value is OTT"
}
]
}IF WE ARE PASSING INVALID '@referredType' IN REQUEST BODY
{
"errors": [
{
"code": 400,
"message": "Bango: Error while creating an entitlement",
"description": "BAD_REQUEST-ProductKey is invalid."
}
]
}